package cn.dsp.admin.mapper;


import cn.dsp.admin.entity.RolePerm;
import cn.dsp.admin.entity.admin.Role;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Set;

@Repository
public interface RoleMapper {

    /**
     * 添加新角色
     * @param role 角色类实例
     * @return 返回受影响行数
     */
    Integer save(Role role);

    /**
     * 修改角色信息
     * @param role
     * @return
     */
    Integer updateInfo(Role role);

    /**
     * 根据查询角色信息
     * @param roleId 角色id
     * @return 返回查询到的角色信息
     */
    Role findByRoleId(Integer roleId);


    /**
     * 根据角色名称查询角色信息
     * @param roleName 角色名称
     * @return 返回角色信息
     */
    Role findByRoleName(String roleName);

    /**
     * 显示所有角色信息
     * @return
     */
    List<Role> findAllRole();

    /**
     *  根据角色名称查询符合的角色信息
     * @param roleName 相关字段
     * @return 查询到的结果
     */
    List<Role> findLikeRoleName(String roleName);

    /**
     * 删除角色信息数据
     * @param roleId 角色id
     * @return 受影响行数
     */
    Integer remove(Integer roleId);

    /**查询接色的权限*/
    Set<Role> findRolesByUid(Integer uid);

    /**给角色添加权限*/
    Integer roleAddPerm(RolePerm rolePerm);

    /**移除角色权限*/
    Integer roleRemovePerm1(RolePerm rolePerm);

    Integer roleRemovePerm2(RolePerm rolePerm);

    Integer removeAllPerm(Integer roleId);
}